package org.sdp.pearproject.service;

import org.sdp.pearproject.dto.request.*;
import org.sdp.pearproject.dto.response.*;
import java.util.List;
import com.alibaba.fastjson.JSONObject;

/**
 * InterfaceName: ProjectService
 * @Description:
 * @Author: SDP
 * @Date: 2022-07-08
 * @Version: 1.0
 * Table: pear_project
 * Comment:
 * 项目表
 */
public interface ProjectService {
    Integer addProject(ProjectAddRequest request) throws Exception;

    Integer updateProject(ProjectUpdateRequest request) throws Exception;

    Integer deleteProject(ProjectDeleteRequest request) throws Exception;

    ProjectQueryResponse queryProject(ProjectQueryRequest request) throws Exception;

    List<ProjectQueryResponse> listProject(ProjectQueryRequest request) throws Exception;

    Integer countProject(ProjectQueryRequest request) throws Exception;

    BaseStatResponse statProject(ProjectQueryRequest request) throws Exception;

    List<ProjectForProjectResponse> project(ProjectForProjectRequest request) throws Exception;

    Integer countForProject(ProjectForProjectRequest request) throws Exception;
     
    BaseStatResponse statForProject(ProjectForProjectRequest request) throws Exception;

    List<ProjectForProjectMemberListForInviteResponse> projectMemberListForInvite(ProjectForProjectMemberListForInviteRequest request) throws Exception;

    Integer countForProjectMemberListForInvite(ProjectForProjectMemberListForInviteRequest request) throws Exception;
     
    BaseStatResponse statForProjectMemberListForInvite(ProjectForProjectMemberListForInviteRequest request) throws Exception;

    List<ProjectForDepartmentResponse> department(ProjectForDepartmentRequest request) throws Exception;

    Integer countForDepartment(ProjectForDepartmentRequest request) throws Exception;
     
    BaseStatResponse statForDepartment(ProjectForDepartmentRequest request) throws Exception;

    List<ProjectForTaskStagesResponse> taskStages(ProjectForTaskStagesRequest request) throws Exception;

    Integer countForTaskStages(ProjectForTaskStagesRequest request) throws Exception;
     
    BaseStatResponse statForTaskStages(ProjectForTaskStagesRequest request) throws Exception;

    List<ProjectForTaskStagesTasksResponse> taskStagesTasks(ProjectForTaskStagesTasksRequest request) throws Exception;

    Integer countForTaskStagesTasks(ProjectForTaskStagesTasksRequest request) throws Exception;
     
    BaseStatResponse statForTaskStagesTasks(ProjectForTaskStagesTasksRequest request) throws Exception;

    List<ProjectForOrganizationGetOrgListResponse> organizationGetOrgList(ProjectForOrganizationGetOrgListRequest request) throws Exception;

    Integer countForOrganizationGetOrgList(ProjectForOrganizationGetOrgListRequest request) throws Exception;
     
    BaseStatResponse statForOrganizationGetOrgList(ProjectForOrganizationGetOrgListRequest request) throws Exception;

    List<ProjectForNotifyNoReadsBaseResponse> notifyNoReadsBase(ProjectForNotifyNoReadsBaseRequest request) throws Exception;

    Integer countForNotifyNoReadsBase(ProjectForNotifyNoReadsBaseRequest request) throws Exception;
     
    BaseStatResponse statForNotifyNoReadsBase(ProjectForNotifyNoReadsBaseRequest request) throws Exception;

    List<ProjectForNotifyNoReadsCountResponse> notifyNoReadsCount(ProjectForNotifyNoReadsCountRequest request) throws Exception;

    Integer countForNotifyNoReadsCount(ProjectForNotifyNoReadsCountRequest request) throws Exception;
     
    BaseStatResponse statForNotifyNoReadsCount(ProjectForNotifyNoReadsCountRequest request) throws Exception;

    List<ProjectForProjectMemberIndexResponse> projectMemberIndex(ProjectForProjectMemberIndexRequest request) throws Exception;

    Integer countForProjectMemberIndex(ProjectForProjectMemberIndexRequest request) throws Exception;
     
    BaseStatResponse statForProjectMemberIndex(ProjectForProjectMemberIndexRequest request) throws Exception;

    List<ProjectForAccountBaseResponse> accountBase(ProjectForAccountBaseRequest request) throws Exception;

    Integer countForAccountBase(ProjectForAccountBaseRequest request) throws Exception;
     
    BaseStatResponse statForAccountBase(ProjectForAccountBaseRequest request) throws Exception;

    List<ProjectForAccountAuthResponse> accountAuth(ProjectForAccountAuthRequest request) throws Exception;

    Integer countForAccountAuth(ProjectForAccountAuthRequest request) throws Exception;
     
    BaseStatResponse statForAccountAuth(ProjectForAccountAuthRequest request) throws Exception;

    List<ProjectForProjectTemplateResponse> projectTemplate(ProjectForProjectTemplateRequest request) throws Exception;

    Integer countForProjectTemplate(ProjectForProjectTemplateRequest request) throws Exception;
     
    BaseStatResponse statForProjectTemplate(ProjectForProjectTemplateRequest request) throws Exception;

    List<ProjectForMenuMenuResponse> menuMenu(ProjectForMenuMenuRequest request) throws Exception;

    Integer countForMenuMenu(ProjectForMenuMenuRequest request) throws Exception;
     
    BaseStatResponse statForMenuMenu(ProjectForMenuMenuRequest request) throws Exception;

    List<ProjectForNodeBaseResponse> nodeBase(ProjectForNodeBaseRequest request) throws Exception;

    Integer countForNodeBase(ProjectForNodeBaseRequest request) throws Exception;
     
    BaseStatResponse statForNodeBase(ProjectForNodeBaseRequest request) throws Exception;

    List<ProjectForNotifyResponse> notify(ProjectForNotifyRequest request) throws Exception;

    Integer countForNotify(ProjectForNotifyRequest request) throws Exception;
     
    BaseStatResponse statForNotify(ProjectForNotifyRequest request) throws Exception;

    List<ProjectForIndexSystemConfigBaseResponse> indexSystemConfigBase(ProjectForIndexSystemConfigBaseRequest request) throws Exception;

    Integer countForIndexSystemConfigBase(ProjectForIndexSystemConfigBaseRequest request) throws Exception;
     
    BaseStatResponse statForIndexSystemConfigBase(ProjectForIndexSystemConfigBaseRequest request) throws Exception;

    List<ProjectForNodeAuthBaseResponse> nodeAuthBase(ProjectForNodeAuthBaseRequest request) throws Exception;

    Integer countForNodeAuthBase(ProjectForNodeAuthBaseRequest request) throws Exception;
     
    BaseStatResponse statForNodeAuthBase(ProjectForNodeAuthBaseRequest request) throws Exception;

    List<ProjectForMemberBaseResponse> memberBase(ProjectForMemberBaseRequest request) throws Exception;

    Integer countForMemberBase(ProjectForMemberBaseRequest request) throws Exception;
     
    BaseStatResponse statForMemberBase(ProjectForMemberBaseRequest request) throws Exception;

    List<ProjectForFileResponse> file(ProjectForFileRequest request) throws Exception;

    Integer countForFile(ProjectForFileRequest request) throws Exception;
     
    BaseStatResponse statForFile(ProjectForFileRequest request) throws Exception;

    List<ProjectForProjectFeaturesResponse> projectFeatures(ProjectForProjectFeaturesRequest request) throws Exception;

    Integer countForProjectFeatures(ProjectForProjectFeaturesRequest request) throws Exception;
     
    BaseStatResponse statForProjectFeatures(ProjectForProjectFeaturesRequest request) throws Exception;

    List<ProjectForProjectVersionResponse> projectVersion(ProjectForProjectVersionRequest request) throws Exception;

    Integer countForProjectVersion(ProjectForProjectVersionRequest request) throws Exception;
     
    BaseStatResponse statForProjectVersion(ProjectForProjectVersionRequest request) throws Exception;

    List<ProjectForTaskSelfListResponse> taskSelfList(ProjectForTaskSelfListRequest request) throws Exception;

    Integer countForTaskSelfList(ProjectForTaskSelfListRequest request) throws Exception;
     
    BaseStatResponse statForTaskSelfList(ProjectForTaskSelfListRequest request) throws Exception;

    List<ProjectForProjectGetLogBySelfProjectResponse> projectGetLogBySelfProject(ProjectForProjectGetLogBySelfProjectRequest request) throws Exception;

    Integer countForProjectGetLogBySelfProject(ProjectForProjectGetLogBySelfProjectRequest request) throws Exception;
     
    BaseStatResponse statForProjectGetLogBySelfProject(ProjectForProjectGetLogBySelfProjectRequest request) throws Exception;

    List<ProjectForTaskLogResponse> taskLog(ProjectForTaskLogRequest request) throws Exception;

    Integer countForTaskLog(ProjectForTaskLogRequest request) throws Exception;
     
    BaseStatResponse statForTaskLog(ProjectForTaskLogRequest request) throws Exception;

    List<ProjectForTaskMemberResponse> taskMember(ProjectForTaskMemberRequest request) throws Exception;

    Integer countForTaskMember(ProjectForTaskMemberRequest request) throws Exception;
     
    BaseStatResponse statForTaskMember(ProjectForTaskMemberRequest request) throws Exception;

    JSONObject login(ProjectForLoginRequest request) throws Exception;

    JSONObject eventsGetEventsListByCalendar(ProjectForEventsGetEventsListByCalendarRequest request) throws Exception;

    List<Object> accountForbid(ProjectForAccountForbidRequest request) throws Exception;

    List<Object> accountResume(ProjectForAccountResumeRequest request) throws Exception;

    ProjectForReadResponse read(ProjectForReadRequest request) throws Exception;

    ProjectForIdToNameResponse idToName(ProjectForIdToNameRequest request) throws Exception;

    ProjectForNameToIdResponse nameToId(ProjectForNameToIdRequest request) throws Exception;

    ProjectForTaskCreateCommentParamResponse taskCreateCommentParam(ProjectForTaskCreateCommentParamRequest request) throws Exception;

    List<Object> projectCollectCollect(ProjectCollectionAddRequest request) throws Exception;

    List<Object> projectMemberInviteMember(ProjectMemberAddRequest request) throws Exception;

    InviteLinkQueryResponse inviteLinkSave(InviteLinkAddRequest request) throws Exception;

    List<ProjectForProjectMemberListForInviteResponse> projectMemberSearchInviteMember(ProjectForProjectMemberListForInviteRequest request) throws Exception;

    List<ProjectForProjectResponse> selfList(ProjectForProjectRequest request) throws Exception;

    JSONObject notifyNoReads(ProjectForNotifyNoReadsBaseRequest request) throws Exception;

    JSONObject account(ProjectForAccountBaseRequest request) throws Exception;

    JSONObject node(BaseRequest request) throws Exception;

    List<ProjectForMenuMenuResponse> index(ProjectForMenuMenuRequest request) throws Exception;

    JSONObject indexSystemConfig(BaseRequest request) throws Exception;

    List<ProjectForAccountBaseResponse> accountAllList(BaseRequest request) throws Exception;

    List<Object> eventsSave(EventsAddRequest request) throws Exception;

    List<Object> loginOut(BaseRequest request) throws Exception;

    Boolean taskCreateComment(ProjectForTaskCreateCommentParamRequest request) throws Exception;

}
